import {
	baseMethod
} from './method.js';
/**
 * 用于判断是否登录的情况
 * title 标题，content描述，
 * 	router true 是 false 否 ===是否需要到首页默认是
 *  show true 是 false 否 ===是否需要弹窗
 * 返回参数  true 说明没有登录，false是登录
 * 函数需要使用 异步操作 async await
 */
function CurrentRouter({
	title = '',
	content = '',
	router = true,
	show = true
}) {
	let stateData = null
	stateData = uni.getStorageSync('userInfo')
	// console.log(stateData)	
	if (!stateData) {
		if (show) showModal({
			title,
			content,
			router,
			show
		})
		return true
	} else false
}
// 确认弹窗
function showModal({
	title,
	content,
	router,
	show
}) {
	uni.showModal({
		title: title || '系统提示',
		content: content || '暂未登录，请登录后操作',
		cancelText: '取消',
		confirmText: '确认',
		success: function(res) {
			if (res.confirm) {
				// 点击取消的时候
				// #ifdef H5
				window.sessionStorage.clear();
				window.localStorage.clear();
				// #endif
				// #ifndef H5
				uni.clearStorageSync();
				// #endif
				// 点击确认的时候
				uni.navigateTo({
					url: '/pages/login/login'
				})
			}
			// else if (res.cancel) {
			// 	if(router) uni.switchTab({url: '/pages/index/index' })
			//       }
		}
	})
}
/**
 * 时间切割
 * @param {*} time 源数据
 * @param {*} code 切割类型 1 年月日，2 小时/分钟/秒钟，3 分钟 , 4 月/日,5 年，6 时/分 其他 年/月/日/小时/分钟
 * 当有参数custom时是自定义规则，time是源数据，code是开始切割位置，replce是-需要转化的字符，custom 是结束的位置
 */
function timeSplice(time, code, replce, custom) {
	// console.log(time)
	if (!time) return ''
	// console.log(time)
	// 定义切割内容
	var sliceText = ''
	time = time.trim().replace(/T/g, ' ')
	// 自定义切割规则
	if (custom) {
		sliceText = time.slice(code, custom)
		if (replce) sliceText = sliceText.replace(/-/g, replce)
		return sliceText
	}

	if (code == '1') sliceText = time.slice(0, 10)
	else if (code == '2') sliceText = time.slice(11, 19)
	else if (code == '3') sliceText = time.slice(14, 16)
	else if (code == '4') sliceText = time.slice(5, 10)
	else if (code == '5') sliceText = time.slice(0, 4)
	else if (code == '6') sliceText = time.slice(11, 16)
	else if (code == '7') sliceText = time.slice(0, 4)
	else sliceText = time.slice(0, 16)
	if (replce) sliceText = sliceText.replace(/-/g, replce)
	return sliceText
}
// 获取时间差的时间
function getDiffDay(date_1, date_2) {
	// 防止苹果时间计算出现NAN
	date_1 = timeSplice(date_1, '1', '/')
	date_2 = timeSplice(date_2, '1', '/')

	// 计算两个日期之间的差值
	let totalDays, diffDate
	let myDate_1 = Date.parse(date_1)
	let myDate_2 = Date.parse(date_2)
	// 将两个日期都转换为毫秒格式，然后做差
	diffDate = Math.abs(myDate_1 - myDate_2) // 取相差毫秒数的绝对值
	totalDays = Math.floor(diffDate / (1000 * 3600 * 24)) // 向下取整
	return totalDays // 相差的天数
}
// 获取当前时间
function getNowTime() {
	var date = new Date();
	//年 getFullYear()：四位数字返回年份
	var year = date.getFullYear(); //getFullYear()代替getYear()
	//月 getMonth()：0 ~ 11
	var month = date.getMonth() + 1;
	//日 getDate()：(1 ~ 31)
	var day = date.getDate();
	//时 getHours()：(0 ~ 23)
	var hour = date.getHours();
	//分 getMinutes()： (0 ~ 59)
	var minute = date.getMinutes();
	//秒 getSeconds()：(0 ~ 59)
	var second = date.getSeconds();
	return `${year}-${conversion(month)}-${conversion(day)}T${conversion(hour)}:${conversion(minute)}:${conversion(minute)}.122`
}
// 补零
function conversion(code) {
	return JSON.stringify(code).length < 2 ? `0${code}` : code
}

/**
 *  按钮式分享函数
 *  share 标题，uni.share 所有参数
 *  show true 是 false 否 ===是否需要验证登录
 *  showMthod CurrentRouter() 方法需要的参数
 *  path  miniProgram的path 值,当前路由
 *  loadingTitle 加载中文案
 *  errTitle 加载失败文案
 *  successTitle 加载成功文案
 */
function uniShareMethod({
	share,
	show,
	path = 'pages/index/index',
	showMthod,
	loadingTitle,
	errTitle,
	successTitle,
	showImg
}) {
	if (show && showMthod && CurrentRouter(showMthod)) return
	// #ifdef H5
	// return new Promise((resolve,reject) => {
	// 	uni.setClipboardData({
	// 		data: `${baseMethod()}doc/h5/#/${path}`,
	// 		success:  (res) => {
	// 			uni.showToast({
	// 				title: successTitle || '复制成功！',
	// 				icon: 'none'
	// 			})
	// 			resolve(res)
	// 		},
	// 		fail: (err) => {
	// 			uni.showToast({
	// 				title: errTitle || '复制失败！',
	// 				icon: 'none'
	// 			})
	// 			reject(err)
	// 		},
	// 	});
	// })
	// #endif
	// #ifdef APP-PLUS
	uni.showLoading({
		title: loadingTitle || '分享中',
		mask: true
	})
	setTimeout(() => {
		uni.hideLoading()
	}, 2000)
	return new Promise((resolve, reject) => {
		// var imageShare = 'https://uni.epumping.com/doc/h5/static/imagedefault.png'
		// if(share.imageUrl) {
		// 	var imageUrl = share.imageUrl.split('.')
		// 	imageShare
		// }
		uni.share({
			provider: 'weixin',
			scene: "WXSceneSession",
			type: 5,
			...share,
			// imageUrl: showImg ? share.imageUrl : 'https://uni.epumping.com/doc/h5/static/imageShare.png',
			miniProgram: {
				id: 'gh_7008aea687bc',
				path: path,
				type: 0,
				webUrl: `${baseMethod()}doc/h5/#/${path}`
			},
			success: (res) => {
				uni.hideLoading()
				uni.showToast({
					title: successTitle || '分享成功！',
					icon: 'none'
				})
				resolve(res)
			},
			fail: (err) => {
				console.log(err, '报错')
				var failErr = err.errMsg.includes('[Share微信分享:-3]')
				uni.hideLoading()
				// ——————————————————————————————————————————————
				if (failErr == true) {
					uni.share({
						provider: 'weixin',
						scene: "WXSceneSession",
						type: 5,
						...share,
						imageUrl: showImg ? share.imageUrl :
							'https://uni.epumping.com/doc/h5/static/imageShare.png',
						miniProgram: {
							id: 'gh_7008aea687bc',
							path: path,
							type: 0,
							webUrl: `${baseMethod()}doc/h5/#/${path}`
						},
						success: (res) => {
							uni.hideLoading()
							uni.showToast({
								title: successTitle || '分享成功！',
								icon: 'none'
							})
							resolve(res)
						},
						fail: (err) => {
							console.log(err, '报错')
							uni.hideLoading()
							reject(err)
						},
						complete: () => {
							uni.hideLoading()
						}
					})
					// ——————————————————————————————————————————————
				}
				reject(err)
			},
			complete: () => {
				uni.hideLoading()
			}
		})
	})
	// #endif
}

export {
	CurrentRouter,
	timeSplice,
	getDiffDay,
	getNowTime,
	uniShareMethod
}
